﻿// ***********************************************************************
// Assembly         : Logica
// Author           : Diego
// Created          : 03-02-2014
//
// Last Modified By : Diego
// Last Modified On : 03-02-2014
// ***********************************************************************
// <copyright file="LOG_Usuarios.cs" company="">
//     Copyright (c) . All rights reserved.
// </copyright>
// <summary></summary>
// ***********************************************************************
using AccesoDatos.Modulos.ClasesAccesoDatos;
using Modelado.Modulos.ClasesModelado;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

/// <summary>
/// The ClasesLogica namespace.
/// </summary>
namespace Logica.Modulos.ClasesLogica
{
    /// <summary>
    /// Class LOG_Usuarios.
    /// </summary>
    public class LOG_Usuarios : Negocio
    {
        /// <summary>
        /// Ses the l_ usuario contrasena.
        /// </summary>
        /// <param name="objs">The objs.</param>
        /// <returns>MOD_Usuarios.</returns>
        public MOD_Usuarios SEL_UsuarioContrasena(MOD_Usuarios objs)
        {
            try
            {
                this.AbrirConexion();

                AD_Usuarios objBD = new AD_Usuarios();

                MOD_Usuarios objUsuarioContrasena = objBD.SEL_UsuarioContrasena(this.comando, objs);

                this.CerrarConexion();

                return objUsuarioContrasena;
            }
            catch (Exception exc)
            {
                this.CerrarConexion();
                throw exc;
            }
        }


        //insertar usuario
        /// <summary>
        /// Crs the e_ usuario.
        /// </summary>
        /// <param name="obj">The object.</param>
        public void CRE_Usuario(MOD_Usuarios obj)
        {
            try
            {
                this.IniciarTransaccion();

                AD_Usuarios objBD = new AD_Usuarios();

                objBD.CRE_Usuario(this.comando, obj);

                this.ConfirmarTransaccion();
            }
            catch (Exception exc)
            {
                this.DeshacerTransaccion();
                throw exc;
            }
        }

        //Elimina usuario

        /// <summary>
        /// Des the l_ usuario.
        /// </summary>
        /// <param name="codigo">The codigo.</param>
        public void DEL_Usuario(int codigo)
        {
            try
            {
                this.IniciarTransaccion();

                AD_Usuarios objBD = new AD_Usuarios();

                objBD.DEL_Usuario(this.comando, codigo);

                this.ConfirmarTransaccion();
            }
            catch (Exception exc)
            {
                this.DeshacerTransaccion();
                throw exc;
            }
        }

        //Actualiza usuario
        /// <summary>
        /// Ups the d_ usuario.
        /// </summary>
        /// <param name="obj">The object.</param>
        public void UPD_Usuario(MOD_Usuarios obj)
        {
            try
            {
                this.IniciarTransaccion();

                AD_Usuarios objBD = new AD_Usuarios();

                objBD.UPD_Usuario(this.comando, obj);

                this.ConfirmarTransaccion();
            }
            catch (Exception exc)
            {
                this.DeshacerTransaccion();
                throw exc;
            }

        }

        //consultar grid usuarios

        /// <summary>
        /// Ses the l_ grid_ usuarios.
        /// </summary>
        /// <returns>List{MOD_Usuarios}.</returns>
        public List<MOD_Usuarios> SEL_Grid_Usuarios()
        {
            try
            {
                this.AbrirConexion();

                AD_Usuarios objBD = new AD_Usuarios();

                List<MOD_Usuarios> lista = objBD.SEL_Grid_Usuarios(this.comando);

                this.CerrarConexion();

                return lista;
            }
            catch (Exception exc)
            {
                this.CerrarConexion();
                throw exc;
            }
        }

        /// <summary>
        /// Ses the l_ list a_ usuarioparticipante.
        /// </summary>
        /// <param name="CODUSUARIO">The codusuario.</param>
        /// <returns>List{MOD_Usuarios}.</returns>
        public List<MOD_Usuarios> SEL_LISTA_USUARIOPARTICIPANTE(int CODUSUARIO)
        {
            try
            {
                this.AbrirConexion();

                AD_Usuarios objBD = new AD_Usuarios();

                List<MOD_Usuarios> lista = objBD.SEL_LISTA_USUARIOPARTICIPANTE(this.comando, CODUSUARIO);

                this.CerrarConexion();

                return lista;
            }
            catch (Exception exc)
            {
                this.CerrarConexion();
                throw exc;
            }
        }

        //Seleccionar usuario by id
        /// <summary>
        /// Ses the l_ usuario by identifier.
        /// </summary>
        /// <param name="USU_CODUSUARIO">The us u_ codusuario.</param>
        /// <returns>MOD_Usuarios.</returns>
        public MOD_Usuarios SEL_UsuarioByID(int USU_CODUSUARIO)
        {
            try
            {
                this.AbrirConexion();

                AD_Usuarios objBD = new AD_Usuarios();

                MOD_Usuarios objUsuario = objBD.SEL_UsuarioByID(this.comando, USU_CODUSUARIO);

                this.CerrarConexion();

                return objUsuario;
            }
            catch (Exception exc)
            {
                this.CerrarConexion();
                throw exc;
            }

        }

        /// <summary>
        /// Ses the l_ estusuario.
        /// </summary>
        /// <returns>List{MOD_Usuarios}.</returns>
        public List<MOD_Usuarios> SEL_ESTUSUARIO()
        {
            try
            {
                this.AbrirConexion();

                AD_Usuarios objBD = new AD_Usuarios();

                List<MOD_Usuarios> lista = objBD.SEL_ESTUSUARIO(this.comando);

                this.CerrarConexion();

                return lista;
            }
            catch (Exception exc)
            {
                this.CerrarConexion();
                throw exc;
            }
        }


        //Seleccionar usuario by email,verifiaca que al crear un usuario no esté repetido
        /// <summary>
        /// Ses the l_ usuario by email.
        /// </summary>
        /// <param name="USU_EMAIL">The us u_ email.</param>
        /// <returns>System.Int32.</returns>
        public int SEL_UsuarioByEmail(string USU_EMAIL)
        {
            try
            {
                this.AbrirConexion();

                AD_Usuarios objBD = new AD_Usuarios();

                int cant_usu = objBD.SEL_UsuarioByEmail(this.comando, USU_EMAIL);

                this.CerrarConexion();

                return cant_usu;
            }
            catch (Exception exc)
            {
                this.CerrarConexion();
                throw exc;
            }

        }

        //Selecciona Puestos
        /// <summary>
        /// Ses the l_ puesto.
        /// </summary>
        /// <returns>List{MOD_Usuarios}.</returns>
        public List<MOD_Usuarios> SEL_PUESTO()
        {
            try
            {
                this.AbrirConexion();

                AD_Usuarios objBD = new AD_Usuarios();

                List<MOD_Usuarios> lista = objBD.SEL_PUESTO(this.comando);

                this.CerrarConexion();

                return lista;
            }
            catch (Exception exc)
            {
                this.CerrarConexion();
                throw exc;
            }
        }

        public List<MOD_Usuarios> SEL_Empresa()
        {
            try
            {
                this.AbrirConexion();

                AD_Usuarios objBD = new AD_Usuarios();

                List<MOD_Usuarios> lista = objBD.SEL_EMPRESA(this.comando);

                this.CerrarConexion();

                return lista;
            }
            catch (Exception exc)
            {
                this.CerrarConexion();
                throw exc;
            }
        }

    }


}
